Complex systems utilize various interfaces for system control and management. Among such complex systems are storage servers, a storage server being a special-purpose processing system used to store and retrieve data on behalf of one or more client processing systems (“clients”). A storage server can be used for many different purposes, such as to provide multiple users with access to shared data or to backup mission critical data.
A file server is an example of a storage server that may be accessed using various interfaces. A file server operates on behalf of one or more clients to store and manage shared files in a set of mass storage devices, such as magnetic or optical storage based disks or tapes. The mass storage devices may be organized into one or more volumes of Redundant Array of Inexpensive Disks (RAID). Another example of a storage server is a device that provides clients with block-level access to stored data, rather than file-level access, or a device that provides clients with both file-level access and block-level access. A client may use any of various interfaces to access the file server.
If a system utilizes multiple interfaces, each interface may provide a different method of interfacing with the system. For example, a storage system may utilize a command line interface, by which a user may directly input instructions for the storage system. In another example, a storage system may utilize an application programming interface (API). The multiple interfaces may provide differing commands and operations. The interfaces may have different names for the same basic function, or may express different functions. In conventional operations, each such interface is subject to a separate implementation. The need for separate implementation of each interface complicates the operation of the system and increases the difficulty in making any needed modifications or updates to the system.